package com.moli.iov.admin.model.vo.req;


import com.moli.iov.base.model.dto.VehicleCommand;
import com.moli.iov.base.model.dto.req.CompanyVehicleModelReqDto;
import com.moli.iov.base.model.dto.req.CompanyVehicleModelReqDto.Save;
import com.moli.iov.base.model.dto.req.CompanyVehicleModelReqDto.Update;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @author whl
 */
@Data
public class CompanyVehicleModelVo extends BaseVo{

  /**
   * id
   */
  @NotNull(message = "企业id不能为空", groups = {Update.class,Read.class})
  private Long id;

  /**
   * 所属公司id
   */
  private Long companyId;

  /**
   * 所属公司名称
   */
  private String companyName;

  /**
   * 品牌
   */
  @NotNull(message = "品牌不能为空", groups = {Save.class, Update.class})
  private String brand;

  /**
   * 车系
   */
  @NotNull(message = "车系不能为空", groups = {Save.class, Update.class})
  private String vehicleSeries;

  /**
   * 车型
   */
  @NotNull(message = "车型不能为空", groups = {Save.class, Update.class})
  private String vehicleType;

  /**
   * 用于前端展示
   */
  @NotNull(message = "车型名称不能为空", groups = {Save.class, Update.class})
  private String vehicleModel;


  /**
   * 车机型号 唯一值(例H-800)
   */
  @NotNull(message = "车机型号不能为空", groups = {Save.class, Update.class})
  private String deviceModel;

  /**
   * 生产厂商
   */
  @NotNull(message = "生产厂商不能为空", groups = {Save.class, Update.class})
  private String supplierCode;

  /**
   * 生产厂商(用于前端显示)
   */
  @NotNull(message = "生产厂商不能为空", groups = {Save.class, Update.class})
  private String supplierName;

  /**
   * 设备型号（例：TBOX/GPS）
   */
  @NotNull(message = "设备型号不能为空", groups = {Save.class, Update.class})
  private String equipmentType;
  /**
   * 车型指令控制json
   */
  @NotEmpty(message = "车型指令不能为空", groups = {Save.class,Update.class})
  private List<VehicleCommand> vehicleCommandList;

  public interface Save{};

  public interface Update{};
  /**
   * 只读
   */
  public interface  Read{};
}
